package com.sprouting.ops.dao;


import com.sprouting.ops.interfaces.BaseDaoMapper;
import com.sprouting.ops.model.OpsAuthority;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * (Power)表数据库访问层
 *
 * @author longx
 * @since 2023-03-19 22:44:34
 */
public interface OpsAuthorityDao extends BaseDaoMapper<OpsAuthority> {

    /**
     * 根据角色ID查询权限
     * @param roleIdSet 角色，可以有多个
     * @return
     */
    List<OpsAuthority> getPowerByRoleId(@Param("list") List<String> roleIdSet);

    /**
     * 根据权限标识符查询权限
     * @param id 主键，传则忽略
     * @param permission 权限标识符
     * @return
     */
    OpsAuthority getByPermission(@Param("id") String id, @Param("permission") String permission);

    /**
     * 根据菜单权限查询 权限
     * @param id id 主键，传则忽略
     * @param webCode 菜单权限
     * @return
     */
    OpsAuthority getByWebCode(@Param("id") String id, @Param("webCode") String webCode);

    /**
     * 根据角色获取权限
     * @param roleIdList 角色ID
     * @return
     */
    List<OpsAuthority> getByRoleIdBatch(List<String> roleIdList);
}

